package com.harkjeans.javacoding.basic;

/**
 * ClassName: Exercise1
 * Package: com.harkjeans.javacoding.basic
 * Description: 练习1:飞机票
 *
 * @Author harkjeans
 * @Create 2025/10/14 10:13
 * @Version 1.0
 */

import java.util.Scanner;

/**
 * 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
 * 按照如下规则计算机票价格：
 * 旺季（5-10月）头等舱9折，经济舱8.5折，淡季（11月到来年4月）头等舱7折，经济舱6.5折。
 */
public class Exercise1 {
    public static void main(String[] args) {
        // 分析
        // 1. 键盘输入输入机票原价、月份和头等舱或经济舱
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入机票原价:");
        int ticket = scanner.nextInt();
        System.out.println("请输入月份:");
        int month = scanner.nextInt();
        System.out.println("请输入舱位: 0 头等舱 1 经济舱");
        int seat = scanner.nextInt();
        // 2. 先判断月份是淡季还是旺季
        if (month >= 5 && month <= 10) {
            // 旺季
            ticket = getPrice(ticket, seat, 0.9, 0.85);
        } else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {
            // 淡季
            ticket = getPrice(ticket, seat, 0.7, 0.65);
        } else {
            System.out.println("输入月份错误!");
        }
        System.out.println("您的机票价格为:" + ticket);
    }

    // 优化代码 - 将重复代码整合成方法
    // 1.我要干嘛(方法名) - 根据舱位和折扣来计算最终票价
    // 2.需要什么才能完成(形参) - 原价、舱位、头等舱折扣、经济舱折扣
    // 3.方法调用是否需要继续使用这个结果(返回值) - 需要
    // 4.调用方法是否需要创建对象 - 不需要, 直接调用(static)

    /**
     * 根据舱位和折扣来计算最终票价
     * @param ticket
     * @param seat
     * @param d0
     * @param d1
     * @return
     */
    private static int getPrice(int ticket, int seat, double d0, double d1){
        // 3. 判断当前机票是头等舱还是经济舱
        if (seat == 0) {
            // 头等舱 // 4. 根据实际情况打印出相应价格
            ticket = (int) (ticket * d0);
        } else if (seat == 1) {
            // 经济舱
            ticket = (int) (ticket * d1);
        } else {
            System.out.println("输入舱位错误!");
        }
        return ticket;
    }
    // 可以选中代码后用Ctrl + Alt + M自动生成方法








}
